package com.holly.unit.bpmn.designer.enums;

import java.util.Objects;
import java.util.stream.Stream;

/**
 * 类描述: 条件节点类型枚举类
 *
 * @author fxr
 * @version 1.0.0
 * @date 2022/5/7 8:52
 */
public enum ConditionTypeEnum {


    // 最大值 OR 最小值
    NUMBER("number"),

    // 完全等于
    ONE("one"),

    // 包含在
    MORE("more"),

    // 选择部门
    DEPT("dept"),

    // 选择人员
    USER("user"),

    // 属于某部门或哪些人员
    ORG("org");

    String fieldName;

    ConditionTypeEnum(String fieldName) {
        this.fieldName = fieldName;
    }
    public String fieldName() {
        return this.fieldName;
    }

    public static ConditionTypeEnum of(String fieldName) {
        return Stream.of(ConditionTypeEnum.values())
                .filter(clazz -> Objects.equals(clazz.fieldName(), fieldName))
                .findFirst()
                .orElse(NUMBER);
    }

}
